/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.uoc.tds.pec4.server.bbdd;

import edu.uoc.tds.pec4.i18n.GestorIdiomas;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import java.util.Properties;
import javax.swing.JOptionPane;

/**
 *
 * @author Fernando
 */
public class GestorParametro {
    static float puntuacionPorAcierto;
    static float puntuacionPorError;
    static float puntuacionPorNoContestado;
    static int numeroPersonasMaximoPorPrueba;
    static int numeroPersonasMaximoEnFinal;
    static int numeroPersonasMinimasInscritas;
    static int numeroPreguntasMaximas;
    static int numeroPreguntasMinimas;

    public GestorParametro(){
        this.getParametros();
    }
        /**
     * Método para establecer la conexión e indicar si existe conexión
     * {pre: una conexión a BBDDD)
     * {post: un booleano que indica si se está conectado y }
     */
    private void getParametros() {
        /** dirección del fichero de propiedades. */
        String propertiesFile = new File(".").getAbsolutePath() + "/properties/parameters.properties";

        try {
            Properties prop = new Properties();
            prop.load(new FileInputStream(propertiesFile));

            puntuacionPorAcierto = Float.valueOf(prop.getProperty("puntuacionPorAcierto"));
            puntuacionPorError = Float.valueOf(prop.getProperty("puntuacionPorError"));
            puntuacionPorNoContestado = Float.valueOf(prop.getProperty("puntuacionPorNoContestado"));
            numeroPersonasMaximoPorPrueba = Integer.parseInt(prop.getProperty("numeroPersonasMaximoPorPrueba"));
            numeroPersonasMaximoEnFinal = Integer.parseInt(prop.getProperty("numeroPersonasMaximoEnFinal"));
            numeroPersonasMinimasInscritas = Integer.parseInt(prop.getProperty("numeroPersonasMinimasInscritas"));
            numeroPreguntasMaximas = Integer.parseInt(prop.getProperty("numeroPreguntasMaximas"));
            numeroPreguntasMinimas = Integer.parseInt(prop.getProperty("numeroPreguntasMinimas"));
        }

        /** Capturamos el error en que el caso de que el fichero de propiedades no exista */
        catch (FileNotFoundException exc) {
            JOptionPane.showMessageDialog(null, GestorIdiomas.getMessage("error.gestorbbdd.no.fichero.properties"), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }

        /** Capturamos el error en el caso de acceso IO */
        catch (IOException exc) {
            JOptionPane.showMessageDialog(null, GestorIdiomas.getMessage("error.gestorbbdd.fichero.properties"), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }

        /** Capturamos excepción de carácter general*/
        catch (Exception exc) {
            JOptionPane.showMessageDialog(null, GestorIdiomas.getMessage("error.general"), GestorIdiomas.getMessage("error"), JOptionPane.ERROR_MESSAGE);
        }
    }

    public float getPuntuacionPorAcierto(){
        return puntuacionPorAcierto;
    }

    public float getPuntuacionPorError(){
        return puntuacionPorError;
    }

    public float getPuntuacionPorNoContestado(){
        return puntuacionPorNoContestado;
    }

    public int getNumeroPersonasMaximoPorPrueba(){
        return numeroPersonasMaximoPorPrueba;
    }

    public int numeroPersonasMaximoEnFinal(){
        return numeroPersonasMaximoEnFinal;
    }

    public int getNumeroPersonasMaximoEnFinal(){
        return numeroPersonasMaximoEnFinal;
    }
    
    public int getNumeroPersonasMinimasInscritas(){
        return numeroPersonasMinimasInscritas;
    }

    public int getNumeroPreguntasMaximas(){
        return numeroPreguntasMaximas;
    }

    public int getNumeroPreguntasMinimas(){
        return numeroPreguntasMinimas;
    }
}
